[AD] Scalaアプリケーションの開発・保守は合同会社ミルクソフトにお任せください
この記事では、IntelliJ IDEAにおいてScala 3(コードネーム:Dotty)を使用する方法を解説します。
IntelliJ IDEAでScala 3を使うには、Early Access Programを活用する
IntelliJ IDEAの通常版はまだScala 3をサポートしていませんが、Early Access Program(後述)を活用すると、Scala 3サポートが有効化されたパブリックβテスト中のScalaプラグインを使用することができます。
これまでの経緯
IntelliJ IDEAはかつてDottyをサポートしていたものの、長らくアップデートを放置していました。
Dottyは次期Scalaのプロトタイプです。
つまりScala 3を作るための叩き台です。
Dottyのサポートはなぜアップデートされずに放置されていたのでしょうか。
それは、Dottyの進捗があまりに流動的で不透明だったためです。
かつては、Dottyが実際にScala 3になるかどうかは未確定でした。
DottyがScala 3にならない可能性があるならば、IntelliJ IDEA ScalaプラグインがDottyの更新に追従してアップデートを提供する必要性は下がります。
IntelliJ IDEAの開発元であるJetBrainsがDottyのサポートに対して消極的になるのも無理はありませんね。
しかしながら、先日の発表により、Dottyが正式にScala 3として採用されることが決定しました。
そのため、今回、IntelliJ IDEAによるDottyサポートも復活する運びとなったわけです。
Scala 3の正式リリース前ゆえ、あくまでベータ版としての不完全なサポートではあるものの、これによってだいぶScala 3を使用しやすくなりますね。
ScalaプラグインのNightlyビルドを使用して、Scala 3サポートを有効化する
さて、早速IntelliJ IDEAでScala 3のサポートを有効化してみましょう。
IntelliJ IDEAのEarly Access Programを利用する
まずはIntelliJ IDEAのEarly Access Programを活用します。
これはScalaプラグインのNightlyビルドを使用できるようにするために必要です。
以下のEarly Access ProgramのページからIntelliJ IDEAのUltimate版もしくはCommunity版をダウンロードします。
あるいは、Toolbox Appを使用してインストールする方法もあります。
ScalaプラグインのNightlyビルドを使用するよう設定する
そしてIntelliJ IDEA ScalaプラグインのNightlyビルドを使用して、Scala 3サポートを有効化します。
設定画面を開きます。
左ペインで、 Languages & Frameworks
の中の Scala
を選択します。
右ペインのUpdates
タブを開きます。
Update Channelは「Nightly Builds」を選択します。
さいごにCheck Now
を押下して最新版にアップデートしておきましょう。
これでIntelliJ IDEAでScala 3を使用できるようになりました。
IntelliJ IDEAでScala 3を使用できることを確認する
早速、Scala 3で新たに追加された機能を使ってみましょう。
Scala 3のプロジェクトを新規に作成する
まずはIntelliJでScala 3のプロジェクトを新規に作成してみます。
メニューバーのFile -> New -> Project
をクリックすると、以下のダイアログが開きます(macOSの場合です。他のOSでは適宜読み替えてください)。
右ペインには安定版の頃にはなかった「Dotty」が追加されていることがわかります。
「Dotty」を選択して「Next」を押下して次の画面に移ります。
ここではプロジェクト名を設定するよう求められるので、お好みのプロジェクト名をつけてください。
「Finish」を押下すると、プロジェクトが開きます。
Scala 3の機能を使用してみる
それでは、実際にScala 3の機能が使えるのかどうかを試してみましょう。
サンプルコードを作成する
Int
またはString
の値を受け取ってメッセージの文字列に変換して出力するメソッドを定義してみます。
Scala 3において追加された機能である合併型(Union Type)を使用すると、このメソッドを以下のように定義することができます。
def message(arg: Int | String) = s"Hello! world $arg"
それでは、作成したプロジェクトの中のMainオブジェクトを以下のように変更します。
object Main { def message(arg: Int | String) = s"Hello! world $arg" def main(args: Array[String]): Unit = { println(message("Scala 3")) println(message(3)) } }
画面上では以下のようになっています。
これでサンプルコードの作成は完了です。
サンプルコードを実行する
それでは、このプログラムを実行してみましょう。
右上のツールバーの「Add Configuration」をクリックして、以下のダイアログを開きます。
左上の「+」ボタンを押しましょう。
「+」ボタンを押すと、以下のメニューが開きますので、「sbt Task」をクリックします。
新しくsbtタスクが作成されるので、右側の設定項目を埋めます。
ここではNameを「intellijDotty」とします。
また、Tasksには「run」と入力しておきます。
以上で「OK」を押してダイアログを完了します。
そしてウィンドウ右上の「Run intellijDotty」をクリックし、Mainオブジェクトを実行します。
最終的に以下のように出力されればOKです。
Hello! world Scala 3 Hello! world 3
Scala 3のサポートを外して元に戻すには
先の設定画面において「Nightly」から「EAP」または「Release」を選択し直すことにより、Scalaプラグインは安定版に戻ります。
また、Scalaプラグインのリポジトリからプラグインをダウンロードし再インストールすることによっても復元することができます。